package br.ucb.modelo.negocio;

import java.io.Serializable;
import java.util.Date;

import br.ucb.enumeradores.Sexo;

public abstract class Pessoa implements Serializable{

	private static final long serialVersionUID = 1L;

	Sexo sexo;
	private String nome, cpf, email;
	private Date dataNascimento;
	private Endereco endereco;
	private Telefone telefone;
	
	public Pessoa() {}
	
	public Pessoa(String nome, String cpf, Sexo sexo,
			        String email, Date dataNascimento, 
			        String estado, String cidade, 
			        String complemento, Integer ddd, 
			        String numero) {
	   
		setNome(nome);
		setCpf(cpf);
		setSexo(sexo);
		setEmail(email);
		setDataNascimento(dataNascimento);
		setEndereco(estado, cidade, complemento);
		setTelefone(ddd, numero);
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Sexo getSexo() {
		return sexo;
	}
	
	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}
	
	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(String estado, String cidade, String complemento) {
		this.endereco = new Endereco(estado, cidade, complemento);
	}

	public Telefone getTelefone() {
		return telefone;
	}

	public void setTelefone(Integer ddd, String numero) {
		this.telefone = new Telefone(ddd, numero);
	}
	
	public String getEmail() {
		return email;
	}
	
	public void setEmail(String email) {
		this.email = email;
	}
	
}
